package com.zhan.signalling.annotation;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

/**
 * 主键标识，一个表最多有四个主键，其中一个为分片主键
 * 主键顺序决定了表中行的排序
 * @author knight
 *
 */
@Documented
@Retention(RUNTIME)
@Target(FIELD)
public @interface PrimaryKey {
	/**
	 * 默认使用当前类型
	 * @return
	 */
	String name();
	
	/**
	 * 分片主键，每个表只有一个，按该键划分数据的分片
	 * @return
	 */
	boolean isPartition() default false;
	
	/**
	 * 列排序
	 * @return
	 */
	int order() default Integer.MAX_VALUE;
	
}
